package com.woniu.cloud.api;

import com.woniu.cloud.common.dto.Result;
import com.woniu.cloud.form.GoodInsertForm;
import com.woniu.cloud.form.GoodUpdateForm;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient(value = "shop",contextId = "GoodApi")
public interface GoodApi {

    /**
     * TODO 查询----------------------------------------------
     */

    /***
     * 商品查询功能
     * @param goodId 平台对店铺商品表Id
     *
     * @return data为该商品详情
     */
    @GetMapping("getGoodByGoodId")
    Result getGoodByGoodId(
            @RequestParam("goodId") Integer goodId);
//    /***  todo 备用方法
//     * 商品查询功能
//     * @param goodId 平台对店铺商品表Id
//     * @param goodStatus 商品状态 0:下架 1:在售 2:售罄 不写默认在售
//     *
//     * @return data为该商品详情
//     */
//    @GetMapping("getGoodByGoodId")
//    Result getGoodByGoodId(
//            @RequestParam("goodId") Integer goodId,Integer goodStatus);

    /***
     * 商品检索功能
     * @param goodName 商品检索名
     * @return
     */
    @GetMapping("getGoodByGoodName")
    Result getGoodByGoodName(
            @RequestParam("goodName") String goodName,
            @RequestParam("pageIndex")Integer pageIndex);

    /***
     * 商品分类查询功能(根据类型查看)
     * @param goodType 平台对店铺商品表类型
     * @return data为平台商品表商品分类list
     */
    @GetMapping("getGoodByGoodType")
    Result getGoodByGoodType(
            @RequestParam("goodType") String goodType,
            @RequestParam("pageIndex")Integer pageIndex);
    /***
     *
     * @return平台对店铺商品表查询商品分类
     */

    @GetMapping("getGoodTypeList")
    Result getGoodTypeList();

    /**
     *
     * TODO 添加----------------------------------------------
     */

    /***
     * 添加商品
     * @param goodInsertForm 平台对店铺商品表前端添加传参对象
     * @return data为success/fail
     */
    @PostMapping("insertGood")
    Result insertGood(
            @RequestBody GoodInsertForm goodInsertForm);

    /**
     * TODO 修改----------------------------------------------
     */

    /***
     * 修改商品信息
     * @param goodUpdateForm 平台对店铺商品表前端传参修改传参对象
     * @return data为success/fail
     */
    @PutMapping("updateGoodByGoodId")
    Result updateGoodByGoodId(
            @RequestBody GoodUpdateForm goodUpdateForm);

    /***
     * 库存修改
     * @param goodId 平台对店铺商品表Id
     * @param goodNum 平台对店铺商品表库存
     * @return data为success/fail
     */
    @PutMapping("updateGoodNumByGoodId")
    Result updateGoodNumByGoodId(
            @RequestParam("goodId") Integer goodId,
            @RequestParam("goodNum") Integer goodNum);
    /***
     * 销量修改
     * @param goodId 平台对店铺商品表Id
     * @param goodSellNum 销量数据
     * @return data为success/fail
     */
    @PutMapping("updateGoodSellNumByGoodId")
    Result updateGoodSellNumByGoodId(
            @RequestParam("goodId") Integer goodId,
            @RequestParam("goodSellNum") Integer goodSellNum);

    /**
     * TODO 删除----------------------------------------------
     */

    /***
     * 根据商品id删除商品
     * @param goodId 平台对店铺商品表Id
     * @return data为success/fail
     */
    @DeleteMapping("deleteGoodByGoodId")
    Result deleteGoodByGoodId(
            @RequestParam("goodId") Integer goodId);


}
